/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.gestaoFuneraria.DAO;

import br.com.gestaoFuneraria.modelo.Associado;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class AssociadoDAO {

    private Connection conexao;

    public void cadastrar(Associado a) throws SQLException {
        //String sql = "INSERT INTO associado (cd_associado, nm_associado, cd_registro_geral_associado, cd_cpf_associado,cd_titutlo_eleitoral_associado,ic_sexo_masculino_feminino,nm_filiacao,dt_nascimento_associado,nm_endereco_associado,nm_cidade_associado,sg_unidade_federativa_associado,cd_cep_associado,cd_funcionario) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
        String sql = "INSERT INTO associado (nm_associado, cd_registro_geral_associado, cd_cpf_associado,cd_titutlo_eleitoral_associado,ic_sexo_masculino_feminino,nm_filiacao,dt_nascimento_associado,nm_endereco_associado,nm_cidade_associado,sg_unidade_federativa_associado,cd_cep_associado,cd_funcionario) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
        PreparedStatement stmt = conexao.prepareStatement(sql);
//        stmt.setInt(1, a.getId());
        stmt.setString(1, a.getNome());
        stmt.setString(2, a.getRg());
        stmt.setString(3, a.getCpf());
        stmt.setString(4, a.getTituloEleitoral());
        stmt.setString(5, a.getSexo());
        stmt.setString(6, a.getFiliacao());
        stmt.setString(7, a.getDataNascimento());
        stmt.setString(8, a.getEndereco());
        stmt.setString(9, a.getCidade());
        stmt.setString(10, a.getUf());
        stmt.setString(11, a.getCep());
        stmt.setInt(12, a.getIdFuncionario());
        stmt.execute();
        stmt.close();
    }

    public List<Associado> getLista() throws SQLException {
        String sql = "SELECT * FROM associado";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();

        List<Associado> associado = new ArrayList<Associado>();
        while (rs.next()) {
            Associado a1 = new Associado();
            a1.setId(Integer.parseInt(rs.getString("cd_associado")));
            a1.setNome(rs.getString("nm_associado"));
            a1.setRg(rs.getString("cd_registro_geral_associado"));
            a1.setCpf(rs.getString("cd_cpf_associado"));
            a1.setTituloEleitoral(rs.getString("cd_titutlo_eleitoral_associado"));
            a1.setSexo(rs.getString("ic_sexo_masculino_feminino"));
            a1.setFiliacao(rs.getString("nm_filiacao"));
            a1.setDataNascimento(rs.getString("dt_nascimento_associado"));
            a1.setEndereco(rs.getString("nm_endereco_associado"));
            a1.setCidade(rs.getString("nm_cidade_associado"));
            a1.setUf(rs.getString("sg_unidade_federativa_associado"));
            a1.setCep(rs.getString("cd_cep_associado"));
            a1.setIdFuncionario(Integer.parseInt(rs.getString("cd_funcionario")));
            associado.add(a1);
        }
        rs.close();
        stmt.close();
        return associado;
    }
//     public void altera(Associado a1) throws SQLException {
//        String sql = "UPDATE associado set cd_associado=?, nm_associado=?, cd_registro_geral_associado=?, cd_cpf_associado=?,cd_titutlo_eleitoral_associado=?,ic_sexo_masculino_feminino=?,nm_filiacao=?,dt_nascimento_associado=?,nm_endereco_associado=?,nm_cidade_associado=?,sg_unidade_federativa_associado=?,cd_cep_associado=?,cd_funcionario=? where cd_associado=?";
//        PreparedStatement stmt = conexao.prepareStatement(sql);
//        stmt.setInt(1, a1.getId());
//        stmt.setString(2, a1.getNome());
//        stmt.setString(3, a1.getRg());
//        stmt.setString(4, a1.getCpf());
//        stmt.setString(5, a1.getTituloEleitoral());
//        stmt.setString(6, a1.getSexo());
//        stmt.setString(7, a1.getFiliacao());
//        stmt.setString(8, a1.getDataNascimento());
//        stmt.setString(9, a1.getEndereco());
//        stmt.setString(10, a1.getCidade());
//        stmt.setString(11, a1.getUf());
//        stmt.setString(12, a1.getCep());
//        stmt.setInt(13, a1.getIdFuncionario());
//        //executa o PreparedStatement
//        stmt.execute();
//        stmt.close();

    public AssociadoDAO() throws SQLException {
        this.conexao = Conexao.getConexao();
    }
}
